#ifndef f_rms_host_ent_h_
#define f_rms_host_ent_h_

#pragma warning (disable: 4786)

#include "String.h"
#include <map>
typedef std::map<DWORD, String> IPArr;

class RMSHostEnt
{
public:
	RMSHostEnt();
	virtual ~RMSHostEnt();


	DWORD DefaultIP() const;
	void DefaultIPString(String& str) const;

	bool IsHostIP(DWORD dwIP) const;
	int GetIPArr(IPArr& iparr) const;
	int IPByNumber(int No) const;
	void IPStringByNumber(String& str, int nIPNo) const;

	bool DefaultIP(DWORD dwNewIP);
	void setAddrAnyIP();

	CString getAllHomeIPs();
	
	enum
	{
		HOSTNAME_LEN = 100
	};

	// local ip = 192.168.
	static bool IsLocalIP(DWORD dwIP);

	// localhost ip = 127.0.0.1
	static bool IsLocalHostIP(DWORD dwIP);

	static void GetIPString(String& str, DWORD dwIP);
	static void GetIPString(CString& str, DWORD dwIP);

	static DWORD GetLocalHostIP(int no);

private:
	bool SetDefaultIP(DWORD dwIP) ;
	DWORD GetValidIP() const;
	//---------------------------
	hostent *m_host;
	char m_cbHostName[HOSTNAME_LEN];

	DWORD m_dwDefaultIP;
	IPArr m_iparr;
};

#endif